﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class ModificarSeccionMateria : System.Web.UI.Page
    {
        private SeccionMateria seccion;
        String error, error2;
        List<Profesor> profesores;
        private List<String> periodos;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION ACTOR ESCUELA
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " + esc.NombreEscuela;


            error = "Operacion Fallida: ";
            seccion = (SeccionMateria)Session["ModificarSeccionMateria"];
            profesores = new List<Profesor>();
            periodos = new List<String>();
            if (!IsPostBack)
            {
                try
                {
                    cargarProfesores();
                    int proSelec = cargarIndexProfesor();
                    //materia = (Materia)Session["ModificarMateria"];
                    textMat.Text = seccion.Materia.Nombre;
                    textPro.SelectedIndex = proSelec - 1;
                    TextNum.Text = seccion.Codigo.ToString();
                    textPer.Text = seccion.PeriodoAcademico;
                }
                catch (Exception)
                {
                    Label6.Text = error + "No se logro recolectar la informacion";
                    Label6.Visible = true;
                }
            }
        }

        public void cargarProfesores()
        {
            profesores = new SqlServerProfesor().ConsultarTodosLosProfesores();
            textPro.Items.Clear();
            foreach (Profesor p in profesores)
            {
                textPro.Items.Add(p.NombreCompleto);
            }
        }

        public int cargarIndexProfesor()
        {
            int index = 0;
            foreach (Profesor p in profesores)
            {
                index++;
                if (p.Cedula == seccion.Profesor.Cedula)
                    return index;
            }
            return 0;
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            bool seModifica = true;
            List<String[]> modificaciones = new List<String[]>();

            //Validacion de Numero Seccion

            if (TextNum.Text.Equals(seccion.Codigo.ToString()) == false)
            {
                try
                {
                    int _numero = Int32.Parse(TextNum.Text);
                    String[] numero = new String[3];
                    numero[1] = "Numero";
                    numero[2] = _numero.ToString();
                    modificaciones.Add(numero);
                }
                catch (Exception)
                {
                    errorPra.Text = "El valor no es numerico";
                    errorPra.Visible = true;
                    seModifica = false;

                }
            }
            //Validacion Profesor

            String[] p = textPro.Text.Split(':');
            String cedula = p[1];
            if (cedula.Equals(seccion.Profesor.Cedula.ToString()) == false)
            {
                String _cedula = cedula;
                String[] profesor = new String[3];
                profesor[1] = "Profesor";
                profesor[2] = _cedula;
                modificaciones.Add(profesor);
            }

            if (seModifica == true)
            {
                if (modificaciones.Count > 0)
                {
                    bool seModifico = new SqlServerSeccionMateria().ModificarSeccionMateria(modificaciones, seccion);
                    if (seModifico == true)
                    {
                        Label6.Text = "Se han realizado las modificaciones con exito";
                        Label6.ForeColor = System.Drawing.Color.Green;
                        Label6.CssClass = "transaccionExitosa";
                        Label6.Visible = true;
                    }
                    else
                    {
                        Label6.Text = error + "No se ha logrado ralizar la modificacion";
                        Label6.ForeColor = System.Drawing.Color.Red;
                        Label6.CssClass = "transaccionFallida";
                        Label6.Visible = true;
                    }
                }
                else
                {
                    Label6.Text = error + "No se ha modificado ningun campo";
                    Label6.ForeColor = System.Drawing.Color.Red;
                    Label6.CssClass = "transaccionFallida";
                    Label6.Visible = true;
                }
            }
            else
            {
                Label6.Text = error + "Existen errores en la informacion";
                Label6.ForeColor = System.Drawing.Color.Red;
                Label6.CssClass = "transaccionFallida";
                Label6.Visible = true;
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarSeccionModificar.aspx");
        }
    }
}